package io.renren.modules.expert.controller;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.renren.common.utils.IdDto;
import io.renren.modules.answer.dto.output.Message;
import io.renren.modules.expert.dto.input.SelectByQuestionIdInput;
import io.renren.modules.expert.dto.input.updateOptionInput;
import io.renren.modules.expert.dto.output.AnswerDetailOutput;
import io.renren.modules.expert.dto.output.Score;
import io.renren.modules.expert.service.ExpertReviewService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.List;

/**
 * @Author liangbaigao
 * @Date 2022/10/10 14:56
 */
@Api(tags = "专家评审")
@RequestMapping("/expertReview")
@RestController
public class ExpertReviewController {

    @Resource
    private ExpertReviewService expertReviewService;


    /**
     *已发布的 管理员看全部 非管理员看自己的
     */
    @GetMapping("/showQuestion")
    @ApiOperation("已发布的问卷  点击菜单时展示")
    private List<Message> showQuestion(){
        return expertReviewService.showQuestion();
    }

    /**
     * 根据问卷id查看答卷用户 分页
     */
    @PostMapping("/selectByQuestionId")
    @ApiOperation("根据问卷id查看答卷用户")
    private Page<Score> selectByQuestionId(@RequestBody @Valid SelectByQuestionIdInput input){
        return expertReviewService.selectByQuestionId(input);
    }


    /**
     * 根据根据答卷id查该用户的答卷详情
     */
    @PostMapping("/selectByAnswerId")
    @ApiOperation("根据根据答卷id查该用户的答卷详情")
    private AnswerDetailOutput selectByAnswerId(@RequestBody @Valid IdDto id){
        return expertReviewService.selectByAnswerId(id);
    }


    /**
     * 专家 更改选项分  ---总分得改
     * 用户选择的题目 id
     * 旧分数
     * 新的分数
     */
    @PostMapping("/updateByOptionId")
    @ApiOperation("专家更改选项分")
    private void updateByOptionId(@RequestBody @Valid List<updateOptionInput> input){
        expertReviewService.updateByOptionId(input);
    }

}
